function Vue(config) {
    const {data={},methods={}} = config;
    this.$data = data;
    // for (let key in data){
    //     Object.defineProperty(this,key,{
    //         get(){
    //             return this.$data[key];
    //         },
    //         set(v){
    //             this.$data[key] = v;
    //         }
    //     });
    // }
    // for(let key in methods){
    //     Object.defineProperty(this,key,{
    //         get(){
    //             return methods[key];
    //         },
    //         set(v){
    //             methods[key] = v;
    //         }
    //     })
    // }


    this.proxy(this.$data);
    this.proxy(methods)
}

Object.assign(Vue.prototype,{
    proxy(obj){
        for(let key in obj){
            Object.defineProperty(this,key,{
                get(){
                    return obj[key];
                },
                set(v){
                    obj[key] = v;
                }
            })
        }
    }
})
export default Vue;